home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / os2 / lopbk505.zip / LBKMOD7.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1997-03-25  |  14KB  |  871 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Integer  INTEGER001
  25.     Integer  INTEGER002
  26.     Integer  INTEGER003
  27.     Integer  INTEGER004
  28.     Real     REAL001
  29.     Real     REAL002
  30.     Real     REAL003
  31.     String   STRING001
  32.     String   STRING002
  33.     String   STRING003
  34.     String   STRING004
  35.     String   STRING005
  36.     String   STRING006
  37.     String   STRING007
  38.     Byte     BYTE001
  39.     Byte     BYTE002
  40.     Byte     BYTE003
  41.     Byte     BYTE004
  42.     Word     WORD001
  43.  
  44. ;------------------------------------------------------------------------------
  45.  
  46.     If (TokCount() <> 1) Then
  47.         PrintLn 
  48.         PrintLn "@X0CLBKMOD7 FATAL ERROR:  INVALID COMMAND SEQUENCE!"
  49.         PrintLn 
  50.         PrintLn "@X0ALBKMOD7 must be ran from within LoopUtil!"
  51.         PrintLn 
  52.         Goto LABEL022
  53.     Else
  54.         GetToken STRING001
  55.         Select Case (STRING001)
  56.             Case "1"
  57.                 Gosub LABEL007
  58.                 Goto LABEL022
  59.             Case "2"
  60.                 Gosub LABEL010
  61.                 Goto LABEL022
  62.             Case "3"
  63.                 Gosub LABEL003
  64.                 Goto LABEL022
  65.             Case "4"
  66.                 Gosub LABEL001
  67.                 Goto LABEL022
  68.             Case Else
  69.                 PrintLn 
  70.                 PrintLn "@X0CLBKMOD7 FATAL ERROR:  INVALID COMMAND SEQUENCE!"
  71.                 PrintLn 
  72.                 PrintLn "@X0ALBKMOD7 must be ran from within LoopUtil!"
  73.                 PrintLn 
  74.                 Goto LABEL022
  75.             Endif
  76.     End Select
  77.     :LABEL001
  78.     Gosub LABEL016
  79.     FSeek 2, 509, 0
  80.     FRead 2, STRING005, 75
  81.     FClose 2
  82.     STRING006 = PPEPath() + "LBKBADNM.XPT"
  83.     STRING007 = PPEPath() + "EXPORT.RPT"
  84.     InputStr "Path & Filename to export to", STRING006, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  85.     STRING006 = Strip(Upper(STRING006), " ")
  86.     If (STRING006 == "") Goto LABEL022
  87.     InputStr "Path & Filename for report file", STRING007, 15, 45, Mask_Path() + Mask_File(), 2 + 4 + 256
  88.     STRING007 = Strip(Upper(STRING007), " ")
  89.     If (STRING007 == "") Goto LABEL022
  90.     STRING005 = Trim(Upper(STRING005), " ")
  91.     If (Exist(STRING005)) Goto LABEL002
  92.     PrintLn 
  93.     PrintLn "@X0C" + STRING005 + " does not exist!"
  94.     PrintLn 
  95.     Delay 4
  96.     Goto LABEL022
  97.     :LABEL002
  98.     INTEGER004 = FileInf(STRING005, 4)
  99.     INTEGER003 = (INTEGER004 - 41) / 19
  100.     If (Exist(STRING006)) Then
  101.         FAppend 1, STRING006, 1, 2
  102.         If (Ferr(1)) Then
  103.             BOOLEAN003 = 1
  104.         Else
  105.             BOOLEAN003 = 0
  106.         Endif
  107.         If (BOOLEAN003) Then
  108.             PrintLn 
  109.             PrintLn "@X0CSorry, the @X0F" + STRING006 + " @X0Cfile is currently inaccessible..."
  110.             FClose 1
  111.             Return
  112.         Endif
  113.     Else
  114.         FCreate 1, STRING006, 1, 2
  115.         If (Ferr(1)) Then
  116.             BOOLEAN003 = 1
  117.         Else
  118.             BOOLEAN003 = 0
  119.         Endif
  120.         If (BOOLEAN003) Then
  121.             PrintLn 
  122.             PrintLn "@X0CSorry, the @X0F" + STRING006 + " @X0Cfile is currently inaccessible..."
  123.             FClose 1
  124.             Return
  125.         Endif
  126.     Endif
  127.     FOpen 2, STRING005, 0, 0
  128.     If (Ferr(2)) Then
  129.         BOOLEAN003 = 1
  130.     Else
  131.         BOOLEAN003 = 0
  132.     Endif
  133.     If (BOOLEAN003) Then
  134.         PrintLn 
  135.         PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  136.         FClose 1
  137.         FClose 2
  138.         Return
  139.     Endif
  140.     If (Exist(STRING007)) Then
  141.         FAppend 3, STRING007, 1, 2
  142.         If (Ferr(3)) Then
  143.             BOOLEAN003 = 1
  144.         Else
  145.             BOOLEAN003 = 0
  146.         Endif
  147.         If (BOOLEAN003) Then
  148.             PrintLn 
  149.             PrintLn "@X0CSorry, the @X0F" + STRING007 + " @X0Cfile is currently inaccessible..."
  150.             FClose 1
  151.             FClose 2
  152.             FClose 3
  153.             Return
  154.         Endif
  155.     Else
  156.         FCreate 3, STRING007, 1, 2
  157.         If (Ferr(3)) Then
  158.             BOOLEAN003 = 1
  159.         Else
  160.             BOOLEAN003 = 0
  161.         Endif
  162.         If (BOOLEAN003) Then
  163.             PrintLn 
  164.             PrintLn "@X0CSorry, the @X0F" + STRING007 + " @X0Cfile is currently inaccessible..."
  165.             FClose 1
  166.             FClose 2
  167.             FClose 3
  168.             Return
  169.         Endif
  170.         FPutLn 3, "LoopBack v5.05 Bad Numbers File Exportation Report"
  171.         FPutLn 3, "Report generated at " + String(Time()) + " on " + String(Date())
  172.         FPutLn 3, "----------------------------------------------------------------------"
  173.         FPutLn 3
  174.     Endif
  175.     INTEGER002 = 1
  176.     Cls
  177.     PrintLn 
  178.     PrintLn Space(19) + "@X0A(@X0FBad Numbers File Exportation Procedure@X0A)"
  179.     PrintLn 
  180.     PrintLn 
  181.     PrintLn "@X0BFrom   :@X0E " + STRING005
  182.     PrintLn "@X0BTo     :@X0E " + STRING006
  183.     PrintLn "@X0BReport :@X0E " + STRING007
  184.     PrintLn 
  185.     Print "@X0CPlease wait, now exporting...@X0F    "
  186.     FSeek 2, 41, 0
  187.     While (INTEGER002 <= INTEGER003) Do
  188.         FSeek 2, 1, 1
  189.         FRead 2, BOOLEAN004, 1
  190.         FSeek 2, 2, 1
  191.         FRead 2, STRING002, 3
  192.         STRING002 = Strip(STRING002, " ")
  193.         FRead 2, STRING003, 4
  194.         STRING003 = Strip(STRING003, " ")
  195.         FRead 2, STRING004, 8
  196.         STRING004 = Strip(STRING004, " ")
  197.         If (BOOLEAN004) Then
  198.             FPutLn 3, "--------------------------------------------------------------------------"
  199.             FPutLn 3, "Record #" + String(INTEGER002) + " not exported because it is an international number..."
  200.             FPutLn 3, "CountryCode = " + STRING002
  201.             FPutLn 3, "CityCode    = " + STRING003
  202.             FPutLn 3, "Number      = " + STRING004
  203.         Else
  204.             FPutLn 1, STRING002 + "-" + Left(STRING003 + Space(3), 3) + "-" + Left(STRING004 + Space(4), 4)
  205.         Endif
  206.         Gosub LABEL020
  207.         Inc INTEGER002
  208.     EndWhile
  209.     FClose 1
  210.     FClose 2
  211.     FClose 3
  212.     PrintLn 
  213.     PrintLn "@X0BExporting process completed!"
  214.     Log "Bad Numbers file exported...", 0
  215.     Delay 4
  216.     Return
  217.     :LABEL003
  218.     Gosub LABEL016
  219.     FSeek 2, 509, 0
  220.     FRead 2, STRING005, 75
  221.     FClose 2
  222.     PrintLn 
  223.     STRING006 = ""
  224.     InputStr "Path & Filename of file to import", STRING006, 15, 45, Mask_Path() + Mask_File(), 2 + 4
  225.     STRING006 = Strip(Upper(STRING006), " ")
  226.     If (STRING006 == "") Goto LABEL022
  227.     STRING005 = Upper(STRING005)
  228.     Newline
  229.     InputInt "Node # that the imported numbers affect", WORD001, 15
  230.     PrintLn 
  231.     If (Exist(STRING006)) Goto LABEL004
  232.     PrintLn "@X0C" + STRING006 + " does not exist!"
  233.     PrintLn 
  234.     Delay 9
  235.     Return
  236.     :LABEL004
  237.     If (Exist(STRING005)) Then
  238.         FOpen 1, STRING005, 1, 2
  239.         If (Ferr(1)) Then
  240.             BOOLEAN003 = 1
  241.         Else
  242.             BOOLEAN003 = 0
  243.         Endif
  244.         If (BOOLEAN003) Then
  245.             PrintLn 
  246.             PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  247.             FClose 1
  248.             Return
  249.         Endif
  250.         FSeek 1, 0, 2
  251.     Else
  252.         FCreate 1, STRING005, 1, 2
  253.         If (Ferr(1)) Then
  254.             BOOLEAN003 = 1
  255.         Else
  256.             BOOLEAN003 = 0
  257.         Endif
  258.         If (BOOLEAN003) Then
  259.             PrintLn 
  260.             PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  261.             FClose 1
  262.             Return
  263.         Endif
  264.         FWrite 1, " LoopBack 5.05 Bad Number Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  265.     Endif
  266.     FOpen 2, STRING006, 0, 0
  267.     If (Ferr(2)) Then
  268.         BOOLEAN003 = 1
  269.     Else
  270.         BOOLEAN003 = 0
  271.     Endif
  272.     If (BOOLEAN003) Then
  273.         PrintLn 
  274.         PrintLn "@X0CSorry, the @X0F" + STRING006 + " @X0Cfile is currently inaccessible..."
  275.         FClose 1
  276.         FClose 2
  277.         Return
  278.     Endif
  279.     Cls
  280.     PrintLn 
  281.     PrintLn Space(20) + "@X0A(@X0FBad # Trash File Importation Procedure@X0A)"
  282.     PrintLn 
  283.     PrintLn "@X0EFrom         : @X0F" + STRING006
  284.     PrintLn "@X0ETo           : @X0F" + STRING005
  285.     PrintLn "@X0EDefault Node : @X0F" + String(WORD001)
  286.     PrintLn 
  287.     PrintLn 
  288.     Print "@X0CImporting record #@X0F1"
  289.     INTEGER002 = 1
  290.     INTEGER001 = 1
  291.     :LABEL005
  292.     If (Ferr(2)) Goto LABEL006
  293.     FGet 2, STRING001
  294.     Backup Len(String(INTEGER001))
  295.     Print String(INTEGER002)
  296.     STRING001 = Strip(Strip(Strip(Strip(Strip(STRING001, " "), ")"), "("), "-"), ".")
  297.     If (STRING001 <> "") Then
  298.         FWrite 1, 0, 1
  299.         FWrite 1, 0, 1
  300.         FWrite 1, WORD001, 2
  301.         FWrite 1, Mid(STRING001, 1, 3), 3
  302.         FWrite 1, Mid(STRING001, 4, 3), 4
  303.         FWrite 1, Mid(STRING001, 7, 4), 8
  304.         INTEGER001 = INTEGER002
  305.         Inc INTEGER002
  306.     Endif
  307.     Goto LABEL005
  308.     :LABEL006
  309.     FClose 1
  310.     FClose 2
  311.     PrintLn 
  312.     PrintLn "@X0B" + STRING006 + " successfully imported..."
  313.     Log STRING006 + " imported into Bad # file...", 0
  314.     Return
  315.     :LABEL007
  316.     Gosub LABEL016
  317.     FSeek 2, 509, 0
  318.     FRead 2, STRING005, 75
  319.     FClose 2
  320.     If (Exist(STRING005)) Goto LABEL008
  321.     PrintLn 
  322.     PrintLn "@X0C" + STRING005 + " does not exist!"
  323.     Delay 9
  324.     Return
  325.     :LABEL008
  326.     INTEGER004 = FileInf(STRING005, 4)
  327.     INTEGER003 = (INTEGER004 - 41) / 19
  328.     PrintLn 
  329.     PrintLn "@X0F   FileSize = " + String(INTEGER004) + "  NumRecs = " + String(INTEGER003)
  330.     If (INTEGER003 <= 1) Then
  331.         PrintLn 
  332.         PrintLn "@X0CTHERE MUST BE AT LEAST ONE RECORD PRESENT IN THE TRASH CAN FILE!"
  333.         PrintLn 
  334.         Delay 18
  335.         Return
  336.     Endif
  337.     KbdChkOff
  338.     Rename STRING005, PPEPath() + String(PcbNode()) + "tb.$$$"
  339.     FCreate 1, STRING005, 1, 2
  340.     If (Ferr(1)) Then
  341.         BOOLEAN003 = 1
  342.     Else
  343.         BOOLEAN003 = 0
  344.     Endif
  345.     If (BOOLEAN003) Then
  346.         PrintLn 
  347.         PrintLn "@X0CSorry, the @X0F" + STRING005 + " @X0Cfile is currently inaccessible..."
  348.         FClose 1
  349.         Return
  350.     Endif
  351.     FOpen 2, PPEPath() + String(PcbNode()) + "tb.$$$", 0, 3
  352.     If (Ferr(2)) Then
  353.         BOOLEAN003 = 1
  354.     Else
  355.         BOOLEAN003 = 0
  356.     Endif
  357.     If (BOOLEAN003) Then
  358.         PrintLn 
  359.         PrintLn "@X0CSorry, the @X0F" + String(PcbNode()) + "tb.$$$ @X0Cfile is currently inaccessible..."
  360.         FClose 2
  361.         FClose 1
  362.         PrintLn 
  363.         PrintLn "@X0ADeleting & renaming temporary files..."
  364.         Delete STRING005
  365.         Rename PPEPath() + String(PcbNode()) + "tb.$$$", STRING005
  366.         Return
  367.     Endif
  368.     BOOLEAN001 = 0
  369.     FSeek 1, 0, 0
  370.     FWrite 1, " LoopBack 5.05 Bad Number Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  371.     PrintLn 
  372.     Print "@X0BPacking Bad Number Trash Can File...     "
  373.     If (OnLocal()) Then
  374.         PrintLn 
  375.         PrintLn 
  376.         Print "@X0F0% @X07░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ @X0F100%"
  377.         BYTE001 = GetY()
  378.     Endif
  379.     INTEGER002 = 1
  380.     While (INTEGER002 <= INTEGER003) Do
  381.         BOOLEAN001 = 0
  382.         BOOLEAN005 = 0
  383.         BOOLEAN004 = 0
  384.         WORD001 = 0
  385.         STRING002 = Space(3)
  386.         STRING003 = Space(4)
  387.         STRING004 = Space(8)
  388.         FSeek 2, 41 + INTEGER002 * 19 - 19, 0
  389.         FRead 2, BOOLEAN005, 1
  390.         If (BOOLEAN005) Then
  391.             BOOLEAN001 = 1
  392.         Else
  393.             BOOLEAN001 = 0
  394.         Endif
  395.         If (BOOLEAN001) Goto LABEL009
  396.         FWrite 1, BOOLEAN005, 1
  397.         FRead 2, BOOLEAN004, 1
  398.         FWrite 1, BOOLEAN004, 1
  399.         FRead 2, WORD001, 2
  400.         FWrite 1, WORD001, 2
  401.         FRead 2, STRING002, 3
  402.         FWrite 1, STRING002, 3
  403.         FRead 2, STRING003, 4
  404.         FWrite 1, STRING003, 4
  405.         FRead 2, STRING004, 8
  406.         FWrite 1, STRING004, 8
  407.         :LABEL009
  408.         If (OnLocal()) Then
  409.             Gosub LABEL019
  410.         Else
  411.             Gosub LABEL020
  412.         Endif
  413.         Inc INTEGER002
  414.     EndWhile
  415.     Color 7
  416.     FClose 1
  417.     FClose 2
  418.     PrintLn 
  419.     PrintLn 
  420.     PrintLn "@X0BDeleting temporary files..."
  421.     Delete PPEPath() + String(PcbNode()) + "tb.$$$"
  422.     PrintLn "@X0EChecking files..."
  423.     INTEGER004 = FileInf(STRING005, 4)
  424.     INTEGER003 = (INTEGER004 - 41) / 19
  425.     If (INTEGER003 < 1) Then
  426.         PrintLn 
  427.         PrintLn "@X0C0 byte file!  Recreating with a dummy record..."
  428.         FCreate 1, STRING005, 1, 2
  429.         FWrite 1, " LoopBack 5.05 Bad Number Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  430.         FWrite 1, 0, 1
  431.         FWrite 1, 0, 1
  432.         FWrite 1, 0, 2
  433.         FWrite 1, Space(3), 3
  434.         FWrite 1, Space(4), 4
  435.         FWrite 1, Space(8), 8
  436.         FClose 1
  437.         PrintLn "@X0ANew bad number trash can file successfully created..."
  438.     Endif
  439.     PrintLn "@X0FBad number trash can file successfully packed!"
  440.     Log "Bad number trash can file successfully packed!", 0
  441.     KbdChkOff
  442.     Return
  443.     :LABEL010
  444.     BOOLEAN001 = 0
  445.     BOOLEAN002 = 1
  446.     INTEGER002 = 1
  447.     Gosub LABEL016
  448.     FSeek 2, 509, 0
  449.     FRead 2, STRING005, 75
  450.     FClose 2
  451.     INTEGER004 = FileInf(STRING005, 4)
  452.     If (Exist(STRING005)) Goto LABEL011
  453.     PrintLn 
  454.     PrintLn "@X0CCreating " + STRING005
  455.     BOOLEAN003 = 1
  456.     FCreate 1, STRING005, 2, 2
  457.     If (Ferr(1)) Then
  458.         BOOLEAN003 = 1
  459.     Else
  460.         BOOLEAN003 = 0
  461.     Endif
  462.     If (BOOLEAN003) Then
  463.         PrintLn 
  464.         PrintLn "@X0CSorry, the @X0F" + STRING005 + " X0Cfile is currently inaccessible..."
  465.         FClose 1
  466.         Return
  467.     Endif
  468.     FSeek 1, 0, 0
  469.     FWrite 1, " LoopBack 5.05 Bad Number Trash File" + Chr(13) + Chr(32) + Chr(10) + Chr(26) + Chr(0), 41
  470.     FWrite 1, 0, 1
  471.     FWrite 1, 0, 1
  472.     FWrite 1, 0, 2
  473.     FWrite 1, "000", 3
  474.     FWrite 1, "000", 4
  475.     FWrite 1, "0000", 8
  476.     INTEGER004 = 60
  477.     Goto LABEL012
  478.     :LABEL011
  479.     BOOLEAN003 = 1
  480.     FOpen 1, STRING005, 2, 2
  481.     If (Ferr(1)) Then
  482.         BOOLEAN003 = 1
  483.     Else
  484.         BOOLEAN003 = 0
  485.     Endif
  486.     If (BOOLEAN003) Then
  487.         PrintLn 
  488.         PrintLn "@X0CSorry, the @X0F" + STRING005 + " X0Cfile is currently inaccessible..."
  489.         FClose 1
  490.         Return
  491.     Endif
  492.     :LABEL012
  493.     If (BOOLEAN001) Goto LABEL015
  494.     If (BOOLEAN002) Then
  495.         FSeek 1, 41 + INTEGER002 * 19 - 19, 0
  496.         FRead 1, BOOLEAN005, 1
  497.         FRead 1, BOOLEAN004, 1
  498.         FRead 1, WORD001, 2
  499.         FRead 1, STRING002, 3
  500.         FRead 1, STRING003, 4
  501.         FRead 1, STRING004, 8
  502.         STRING002 = Strip(STRING002, " ")
  503.         STRING003 = Strip(STRING003, " ")
  504.         STRING004 = Strip(STRING004, " ")
  505.         BOOLEAN002 = 0
  506.     Endif
  507.     PrintLn 
  508.     INTEGER003 = (INTEGER004 - 41) / 19
  509.     PrintLn "    @X0FBad Number Trash File"
  510.     PrintLn "    @X0BRecord #@X0E" + String(INTEGER002) + "@X0B of @X0E" + String(INTEGER003)
  511.     Print "    @X0F(@X09D@X0F)eleted : @X0C"
  512.     If (BOOLEAN005) Then
  513.         PrintLn "Yes"
  514.     Else
  515.         PrintLn "No "
  516.     Endif
  517.     PrintLn 
  518.     Print "    @X0F(@X09I@X0F)nternational #  : @X0C"
  519.     If (BOOLEAN004) Then
  520.         PrintLn "Yes"
  521.     Else
  522.         PrintLn "No "
  523.     Endif
  524.     PrintLn "    @X0FN(@X09O@X0F)de             : @X0C" + String(WORD001)
  525.     PrintLn "    @X0F(@X09N@X0F)umber           : @X0C" + STRING002 + "-" + STRING003 + "-" + STRING004
  526.     PrintLn 
  527.     PrintLn "    @X0F(@X09+@X0F) @X0BAdvance 1 record  @X0F(@X09-@X0F) @X0BRetard 1 record"
  528.     PrintLn "    @X0F(@X09J@X0F)@X0Bump to record      @X0F(@X09A@X0F)@X0Bdd a record"
  529.     PrintLn "    @X0F(@X09Q@X0F)@X0Buit"
  530.     PrintLn 
  531.     InputStr "(H)elp, Enter command", STRING006, 10, 1, "NnAaDdJj+-OoQqRrHh", 2 + 4
  532.     Newline
  533.     STRING006 = Upper(STRING006)
  534.     Select Case (STRING006)
  535.         Case "Q", "R"
  536.             FClose 1
  537.             BOOLEAN002 = 0
  538.             BOOLEAN001 = 1
  539.         Case "H"
  540.             Print "@PON@"
  541.             DispFile PPEPath() + "LBKBE", 1 + 4
  542.             Print "@POFF@"
  543.             Cls
  544.             BOOLEAN002 = 0
  545.             BOOLEAN001 = 0
  546.         Case "+"
  547.             If (INTEGER002 >= INTEGER003) Then
  548.                 INTEGER002 = 1
  549.             Else
  550.                 Inc INTEGER002
  551.             Endif
  552.             BOOLEAN001 = 0
  553.             BOOLEAN002 = 1
  554.         Case "-"
  555.             If (INTEGER002 <= 1) Then
  556.                 INTEGER002 = INTEGER003
  557.             Else
  558.                 Dec INTEGER002
  559.             Endif
  560.             BOOLEAN001 = 0
  561.             BOOLEAN002 = 1
  562.         Case "J"
  563.             INTEGER001 = INTEGER003
  564.             InputInt "Enter record # to jump to", INTEGER001, 10
  565.             If (INTEGER001 > INTEGER003) Then
  566.                 INTEGER002 = INTEGER003
  567.             ElseIf (INTEGER001 < 1) Then
  568.                 INTEGER002 = 1
  569.             Else
  570.                 INTEGER002 = INTEGER001
  571.             Endif
  572.             BOOLEAN001 = 0
  573.             BOOLEAN002 = 1
  574.         Case "D"
  575.             FSeek 1, 41 + INTEGER002 * 19 - 19, 0
  576.             If (BOOLEAN005) Then
  577.                 FWrite 1, 0, 1
  578.             Else
  579.                 FWrite 1, 1, 1
  580.             Endif
  581.             BOOLEAN001 = 0
  582.             BOOLEAN002 = 1
  583.         Case "A"
  584.             FSeek 1, 0, 2
  585.             WORD001 = 0
  586.             InputInt "Enter node affected (0 = ALL)", WORD001, 12
  587.             Newline
  588.             STRING007 = NoChar()
  589.             InputYN "International number", STRING007, 12
  590.             STRING007 = Upper(STRING007)
  591.             Newline
  592.             If (STRING007 == YesChar()) Then
  593.                 BOOLEAN004 = 1
  594.                 InputStr "Country code (XXX = wildcard)", STRING002, 10, 3, Mask_Num() + "Xx", 2 + 4
  595.                 Newline
  596.                 STRING002 = Strip(STRING002, " ")
  597.                 InputStr "City code (XXXX = wildcard)", STRING003, 10, 4, Mask_Num() + "Xx", 2 + 4
  598.                 Newline
  599.                 STRING003 = Strip(STRING003, " ")
  600.                 InputStr "Number (XXXXXXXX = wildcard)", STRING004, 10, 8, Mask_Num() + "Xx", 2 + 4
  601.                 Newline
  602.                 STRING004 = Upper(Strip(STRING004, " "))
  603.             Else
  604.                 BOOLEAN004 = 0
  605.                 If (Len(STRING003) == 4) STRING003 = ""
  606.                 If (Len(STRING004) > 4) STRING004 = ""
  607.                 InputStr "Area code (XXX = wildcard)", STRING002, 10, 3, Mask_Num() + "Xx", 2 + 4
  608.                 STRING002 = Upper(Strip(STRING002, " "))
  609.                 Newline
  610.                 InputStr "Prefix (XXX = wildcard)", STRING003, 10, 3, Mask_Num() + "Xx", 2 + 4
  611.                 STRING003 = Upper(Strip(STRING003, " "))
  612.                 Newline
  613.                 InputStr "Number (XXXX = wildcard)", STRING004, 10, 4, Mask_Num() + "Xx", 2 + 4
  614.                 STRING004 = Upper(Strip(STRING004, " "))
  615.             Endif
  616.             PrintLn 
  617.             PrintLn "@X0FCreating record..."
  618.             FWrite 1, 0, 1
  619.             FWrite 1, BOOLEAN004, 1
  620.             FWrite 1, WORD001, 2
  621.             FWrite 1, STRING002, 3
  622.             If (BOOLEAN004) Then
  623.                 FWrite 1, STRING003, 4
  624.                 FWrite 1, STRING004, 8
  625.             Else
  626.                 FWrite 1, Mid(STRING003, 1, 3) + Space(1), 4
  627.                 FWrite 1, Mid(STRING004, 1, 4) + Space(4), 8
  628.             Endif
  629.             INTEGER003 = INTEGER003 + 1
  630.             INTEGER004 = INTEGER004 + 19
  631.             INTEGER002 = INTEGER003
  632.             BOOLEAN002 = 1
  633.             BOOLEAN001 = 0
  634.         Case "O"
  635.             InputInt "Enter new node affected (0 = ALL)", WORD001, 12
  636.             FSeek 1, 41 + INTEGER002 * 19 - 17, 0
  637.             FWrite 1, WORD001, 2
  638.             BOOLEAN001 = 0
  639.             BOOLEAN002 = 1
  640.         Case "I"
  641.             If (BOOLEAN004) Then
  642.                 STRING007 = YesChar()
  643.             Else
  644.                 STRING007 = NoChar()
  645.             Endif
  646.             InputYN "International number", STRING007, 12
  647.             Newline
  648.             STRING007 = Upper(STRING007)
  649.             If (STRING007 == YesChar()) Then
  650.                 BOOLEAN004 = 1
  651.             Else
  652.                 BOOLEAN004 = 0
  653.             Endif
  654.             FSeek 1, 41 + INTEGER002 * 19 - 18, 0
  655.             FWrite 1, BOOLEAN004, 1
  656.             BOOLEAN001 = 0
  657.             BOOLEAN002 = 1
  658.         Case "N"
  659.             If (BOOLEAN004) Then
  660.                 InputStr "Country code (XXX = wildcard)", STRING002, 10, 3, Mask_Num() + "Xx", 2 + 4
  661.                 Newline
  662.                 STRING002 = Upper(Strip(STRING002, " "))
  663.                 InputStr "City code (XXXX = wildcard)", STRING003, 10, 4, Mask_Num() + "Xx", 2 + 4
  664.                 Newline
  665.                 STRING003 = Upper(Strip(STRING003, " "))
  666.                 InputStr "Number (XXXXXXXX = wildcard)", STRING004, 10, 8, Mask_Num() + "Xx", 2 + 4
  667.                 Newline
  668.                 STRING004 = Upper(Strip(STRING004, " "))
  669.                 Goto LABEL013
  670.             Endif
  671.             If (Len(STRING003) == 4) STRING003 = ""
  672.             If (Len(STRING004) > 4) STRING004 = ""
  673.             InputStr "Area code (XXX = wildcard)", STRING002, 10, 3, Mask_Num() + "Xx", 2 + 4
  674.             STRING002 = Upper(Strip(STRING002, " "))
  675.             Newline
  676.             InputStr "Prefix (XXX = wildcard)", STRING003, 10, 3, Mask_Num() + "Xx", 2 + 4
  677.             STRING003 = Upper(Strip(STRING003, " "))
  678.             Newline
  679.             InputStr "Number (XXXX = wildcard)", STRING004, 10, 4, Mask_Num() + "Xx", 2 + 4
  680.             STRING004 = Upper(Strip(STRING004, " "))
  681.             :LABEL013
  682.             FSeek 1, 41 + INTEGER002 * 19 - 15, 0
  683.             FWrite 1, STRING002, 3
  684.             If (BOOLEAN004) Then
  685.                 FWrite 1, STRING003, 4
  686.                 FWrite 1, STRING004, 4
  687.                 Goto LABEL014
  688.             Endif
  689.             FWrite 1, Mid(STRING003, 1, 3) + Space(1), 4
  690.             FWrite 1, Mid(STRING004, 1, 4) + Space(4), 8
  691.             :LABEL014
  692.             BOOLEAN001 = 0
  693.             BOOLEAN002 = 1
  694.     End Select
  695.     Goto LABEL012
  696.     :LABEL015
  697.     FClose 1
  698.     Return
  699.     :LABEL016
  700.     STRING001 = PPEPath() + "LBKBACK.XXX"
  701.     If (Exist(PPEPath() + "LBKBACK.XXX")) Then
  702.         FOpen 2, STRING001, 0, 0
  703.     Else
  704.         PrintLn 
  705.         PrintLn "@X0FPath & filename to LoopBack config file @X0E(Enter Below)"
  706.         InputStr "", STRING001, 12, 75, Mask_Path() + Mask_File(), 2 + 4
  707.         If (Exist(STRING001)) Goto LABEL017
  708.         PrintLn 
  709.         PrintLn "@X0C" + STRING001 + " DOES NOT EXIST!   @X0AReturning to LoopUtil Main..."
  710.         Goto LABEL022
  711.         Goto LABEL018
  712.         :LABEL017
  713.         FOpen 2, STRING001, 0, 0
  714.     Endif
  715.     :LABEL018
  716.     If (Ferr(2)) Then
  717.         BOOLEAN003 = 1
  718.     Else
  719.         BOOLEAN003 = 0
  720.     Endif
  721.     If (BOOLEAN003) Then
  722.         PrintLn 
  723.         PrintLn "@X0CSorry, the @X0F" + STRING001 + " @X0Cfile is currently inaccessible..."
  724.         FClose 2
  725.         Return
  726.     Endif
  727.     Return
  728.     :LABEL019
  729.     If (INTEGER002 == 1) BYTE004 = 0
  730.     If ((INTEGER002 <> 0) && (INTEGER003 <> 0)) Then
  731.         REAL002 = ToReal(INTEGER002) / ToReal(INTEGER003)
  732.         REAL003 = FmtReal(ToReal(35) * REAL002, 1, 0)
  733.         BYTE003 = ToByte(REAL003) - BYTE004
  734.         If (BYTE003 <> BYTE004) Then
  735.             Color 63
  736.             AnsiPos 4 + BYTE004, BYTE001
  737.             For BYTE004 = 1 To BYTE003
  738.                 Print "░"
  739.             Next
  740.             BYTE004 = ToByte(REAL003)
  741.             REAL002 = FmtReal(REAL002 * 100, 1, 0)
  742.             BYTE003 = (43 - Len(String(REAL002) + "%")) / 2
  743.             Color 11
  744.             REAL003 = ToReal(BYTE001) - 1
  745.             AnsiPos BYTE003, ToByte(REAL003)
  746.             Print String(REAL002) + "%"
  747.             AnsiPos 45, BYTE001
  748.         Endif
  749.     Endif
  750.     Return
  751.     :LABEL020
  752.     If ((INTEGER002 <> 0) && (INTEGER003 <> 0)) Then
  753.         If (INTEGER002 == 1) Then
  754.             BYTE002 = 0
  755.             Goto LABEL021
  756.         Endif
  757.         BYTE002 = REAL001
  758.         :LABEL021
  759.         REAL001 = ToReal(INTEGER002) / ToReal(INTEGER003)
  760.         REAL001 = FmtReal(REAL001 * 100, 1, 0)
  761.         If (BYTE002 <> REAL001) Then
  762.             Backup Len(String(BYTE002) + "%")
  763.             Print String(REAL001) + "%"
  764.         Endif
  765.     Endif
  766.     Return
  767.     :LABEL022
  768.     End
  769.  
  770. ;------------------------------------------------------------------------------
  771. ;
  772. ; Usage report (before postprocessing)
  773. ;
  774. ; ■ Statements used :
  775. ;
  776. ;    1       End
  777. ;    3       Cls
  778. ;    3       Color 
  779. ;    148     Goto 
  780. ;    143     Let 
  781. ;    12      Print 
  782. ;    106     PrintLn 
  783. ;    90      If 
  784. ;    1       DispFile 
  785. ;    6       FCreate 
  786. ;    7       FOpen 
  787. ;    2       FAppend 
  788. ;    34      FClose 
  789. ;    1       FGet 
  790. ;    10      FPutLn 
  791. ;    2       Delete 
  792. ;    3       Log 
  793. ;    17      InputStr 
  794. ;    2       InputYN 
  795. ;    4       InputInt 
  796. ;    11      Gosub 
  797. ;    23      Return
  798. ;    5       Delay 
  799. ;    4       Inc 
  800. ;    1       Dec 
  801. ;    15      Newline
  802. ;    1       GetToken 
  803. ;    2       KbdChkOff
  804. ;    3       AnsiPos 
  805. ;    2       Backup 
  806. ;    2       Rename 
  807. ;    17      FSeek 
  808. ;    20      FRead 
  809. ;    45      FWrite 
  810. ;
  811. ;
  812. ; ■ Functions used :
  813. ;
  814. ;    9       *
  815. ;    7       /
  816. ;    159     +
  817. ;    13      -
  818. ;    24      ==
  819. ;    8       <>
  820. ;    3       <
  821. ;    5       <=
  822. ;    3       >
  823. ;    3       >=
  824. ;    82      !
  825. ;    4       &&
  826. ;    2       ||
  827. ;    7       Len(
  828. ;    18      Upper()
  829. ;    7       Mid()
  830. ;    2       Left()
  831. ;    14      Space()
  832. ;    14      Ferr()
  833. ;    20      Chr()
  834. ;    1       Trim()
  835. ;    1       Date()
  836. ;    1       Time()
  837. ;    2       NoChar()
  838. ;    3       YesChar()
  839. ;    26      Strip()
  840. ;    20      String()
  841. ;    12      Mask_Num()
  842. ;    4       Mask_File()
  843. ;    4       Mask_Path()
  844. ;    9       PPEPath()
  845. ;    5       PcbNode()
  846. ;    2       OnLocal()
  847. ;    9       Exist()
  848. ;    1       GetY()
  849. ;    4       FileInf()
  850. ;    1       TokCount()
  851. ;    3       ToByte()
  852. ;    6       ToReal()
  853. ;    3       FmtReal()
  854. ;
  855. ;------------------------------------------------------------------------------
  856. ;
  857. ; Analysis flags : No flag
  858. ;
  859. ;------------------------------------------------------------------------------
  860. ;
  861. ; Postprocessing report
  862. ;
  863. ;    1       For/Next
  864. ;    2       While/EndWhile
  865. ;    57      If/Then or If/Then/Else
  866. ;    2       Select Case
  867. ;
  868. ;------------------------------------------------------------------------------
  869. ;                 AEGiS Corp - Break the routines, code against the machines!
  870. ;------------------------------------------------------------------------------
  871.